home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 46 / Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso / -in_the_mag- / reader_requests / scilab / demos / npend / npend.dem < prev    next >
Text File  |  1999-09-16  |  1KB  |  50 lines

  1.  
  2. tt=0:0.05:10;
  3. //tt=0:0.1:1;
  4.  
  5. path="SCI/demos/npend";
  6. mode(-1);
  7. getf(path+'/macros.sci','c');
  8. getf(path+'/dessin.sci','c');
  9. xbasc();
  10. flag1=x_choose(['Read a precomputed trajectory';
  11.         'Simulation with ode (needs f77 and link. may fail. see help link)'],...
  12.          'Simulation or Visualisation ? (click below)');
  13.  
  14. select flag1,
  15.  case 2 then host("cd $"+path+"; make ");
  16.     if ~c_link('npend') then link('/tmp/npend.o','npend');end
  17.     if ~c_link('ener')  then link('/tmp/ener.o','ener');end
  18.     if ~c_link('np')  then link('/tmp/np.o','np');end
  19.     n=np();
  20.     r=1*ones(1,n);m=1*ones(1,n);j=1*ones(1,n);g=9.81;
  21.     y0=0*ones(2*n,1);
  22.  
  23.     yt=ode(y0,0,tt,'npend');
  24.     xselect();
  25.     xbasc();
  26.     chaina(yt);
  27.     flag=2 ; 
  28.     y=[]; for i=1:n;y=[y;'theta'+string(i)];end
  29.     yd=[]; for i=1:n;yd=[yd;'thetad'+string(i)];end
  30.     ystr=[y;yd];
  31.     while flag=2, [n1,n2]=size(yt);
  32.           flag=x_choose(['Stop';'Go on'],'Choose');
  33.                 if flag=2,y0=evstr(x_mdialog(['Initial point '],ystr,...
  34.                 string(yt(:,n2))));
  35.           yt=ode(y0,0,tt,'npend');
  36.           met=x_choose(['With last point trajectory';'Without'],...
  37.             'Graphic Option');
  38.         xbasc();
  39.           if met=1; chainb(yt);else;chaina(yt);end
  40.         end
  41.     end
  42.  case 1 then // A precomputed value for 
  43.          //x0=[0;%pi/2+0.1;0;5.0;0.0;4.0;0;0];
  44.     n=10;
  45.     r=1*ones(1,n);m=1*ones(1,n);j=1*ones(1,n);g=9.81;
  46.     y0=0*ones(2*n,1);
  47.     yt=read(path+'/yt.wrt',20,201);
  48.     chaina(yt);
  49. end
  50.